这两段C语言有何不同呢?只是{}的区别吗?

来源:百度知道 编辑:UC知道 时间:2024/05/27 05:11:47
#include<stdio.h>
main()
{
float x,y,t;
scanf("%f,%f",&x,&y);
if(x<y)
{t=x;x=y;y=t;}
printf("%f,%f",x,y);
}


#include<stdio.h>
main()
{
float x,y,t;
scanf("%f,%f",&x,&y);
if(x<y)
t=x;x=y;y=t;
printf("%f,%f",x,y);
}

输入两组不同的数据 一组为x>y一组为x<y的情况 比较两组输入对输出有什么样的影响

不止是{}的区别,你可以这样等同,就可以发现或得出结论了
#include<stdio.h>
main()
{
float x,y,t;
scanf("%f,%f",&x,&y);
if(x<y)
t=x;x=y;y=t;
printf("%f,%f",x,y);
}
等同于
#include<stdio.h>
main()
{
float x,y,t;
scanf("%f,%f",&x,&y);
if(x<y)
{
t=x;
}
x=y;y=t;
printf("%f,%f",x,y);
}
这样就可以很明显地看出区别了,
第一个是:x<y时,将其数据进行交换
但上面这个:每次x<y时,将x的值赋给x,
但x>=y时,也执行x=y;y=t;
所以当x<y时两个程序一样,
但当x>=y时,x得到y的值,y得到的是t的默认值

第二段代码的if(x<y)判断条件只对t=x;起作用,而第一段对{t=x;x=y;y=t;} 起作用,结果当然会不同

就是if(x<y)
t=x;x=y;y=t;
这里有没有大括号的区别

由大括号的话,那么x<y时执行大括号里所有的代码。没有的话只执行第一行

一看到计算机语言,我傻眼了